Subversion – Repositories zusammenlegen – exportieren
By Martin on Regards: Infrastructure;Vor kurzem stand ich vor dem Problem mehrere Repositories die ich mit Subversion verwalte zu einer einzigen zusammen zu führen. Das geht recht einfach.
- Neue Repositorie anlegen (z.B. mit
svnadmin create REPOS_PATH
oder über websvn) - Ins Verzeichnis wechseln wo die Repositories gespeichert sind
- Alle Repositories die man jetzt in die neue Repositorie laden bzw.
einfügen will müssen mit
dump
exportiert werden. - Könnte z.B. so aussehen: nas:~#
svnadmin dump /c/.subversion/Repositoriename1/ > /backupRepositoriename1.dump
- Danach muss man nur noch alle dumps in die neue Repositorie laden
- Könnte z.B. so aussehen: nas:~#
svnadmin load /c/.subversion/UnsereNeueRepositoriename/ < /backup/Repositoriename1.dump
- Danach könnt ihr die nicht benötigten Repositories z.B. so
rm /c/.subversion/AlteRepositorie/ -rf
löschen
Allerdings kann es sein, dass in der alten und in der neuen Repositorie die Ordnernamen gleich heißen. Das führt zu einem Konflikt und der “load” Vorgang kann nicht fortgesetzt werden.
Das wird höchstwahrscheinlich mit den Ordnern branches, trunk, tags passieren.
Man muss also dafür sorgen, dass entweder der dump
oder
die Zielrespositorie diesen Ordner nicht enthält.
Man kann sie mit dem Befehl
svn rm http://server/svn/respositorie/trunk
löschen.
Notfalls wäre ein Umbennen des Ordners ebenfalls möglich mit
svn mv http://server/svn/respositorie/trunk http://server/svn/respositorie/trunk1
Auch immer gut zu wissen: svn aus einem Verzeichnis löschen:
find . -name ".svn" -exec rm -rf {} \;
Links:
http://svnbook.red-bean.com/en/1.1/re29.html
http://de.wikipedia.org/wiki/Apache_Subversion
Propose a change